//
//  Entity.h
//  genePool
//
//  Created by Greg Dunn on 10/26/09.
//  Copyright 2009 __MyCompanyName__. All rights reserved.
//

#import "SSStats.h"
#import "SSInventory.h"
#import "SSMobility.h"

typedef enum {
	NONE = 0,
	UP = 1,
	RIGHT = 2,
	DOWN = 3,
	LEFT = 4
} Direction;

typedef enum {
	Player = 0,
	Enemy = 1,
	Weapon = 2,
	Ammo = 3,
	PowerUp = 5,
	Item = 6
} EntityType;

@interface SSEntity : NSObject {
	
	int width;
	int height;
	float x;
	float y;
	float z; 
	float rotation;
	Direction facing;
	Direction pointPosition;
	EntityType entityType;
    NSString *entityID;
	SSStats *stats;
	SSInventory *inventory;
	SSMobility *mobility;
	
	float hitEffectGain;
	NSString *hitEffectSound;
	
	float shootEffectGain;
	NSString *shootEffectSound;
	
	float deadEffectGain;
	NSString *deadEffectSound;
}
@property(nonatomic) int width, height;
@property(nonatomic) float x, y, z, rotation;
@property(nonatomic) Direction facing;
@property(nonatomic) Direction pointPosition;
@property(nonatomic, assign) EntityType entityType;
@property(nonatomic, assign) NSString *entityID;


@property(nonatomic, assign) SSStats *stats;
@property(nonatomic, assign) SSInventory *inventory;
@property(nonatomic, assign) SSMobility *mobility;

@property(nonatomic, assign) float hitEffectGain;
@property(nonatomic, retain) NSString *hitEffectSound;

@property(nonatomic, assign) float shootEffectGain;
@property(nonatomic, retain) NSString *shootEffectSound;

@property(nonatomic, assign) float deadEffectGain;
@property(nonatomic, retain) NSString *deadEffectSound;

@end
